// 1.测试箭头函数中this指向
// var name = "why"

// var foo = () => {
//   console.log(name);
//   console.log(this);
// }

// var obj = {
//   foo: foo
// }



// foo()  //window
// obj.foo()  //window
// foo.call("abc") //window

// 2.应用场景
var obj = {
  data: [],
  getData: function () {
    // 发送网络请求,将结果放到上面data属性中
    // (箭头函数之前的解决方案)
    // 这里的this外面使用了隐式调用,所以是obj对象本身
    // var _this = this
    // setTimeout(function () {
    //   var result = ['abc', 'cba', 'nba']
    // 这里面的this是window,无法赋值到obj里面的data
    // _this.data = result
    // }, 2000);

    setTimeout(() => {
      var result = ['abc', 'cba', 'nba']
      // 箭头函数的this是上层作用域的this,也就是getData,他在调用的时候是隐式调用obj.getData(),所以就是obj对象
      this.data = result
    }, 2000);
  },
  getcc: () => {
    console.log(this);
    setTimeout(() => {
      console.log(this);
    }, 1000);
  }
}

obj.getData()
obj.getcc()